package com.tps.cloud.system.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.tps.cloud.entity.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 菜单权限信息表
 */
@Data
public class SystemMenuDto {

    /**
     * 菜单id
     */
    @Schema(description = "菜单id")
    private Long id;
    /**
     * 菜单名称
     */
    @NotNull(message = "{SystemMenuDto.Name.NotEmpty}")
    @Schema(description = "菜单名称")
    private String name;
    /**
     * 权限标识
     */
    @Schema(description = "权限标识")
    private String permission;
    /**
     * 菜单类型
     */
    @NotNull(message = "{SystemMenuDto.Type.NotEmpty}")
    @Schema(description = "菜单类型")
    private Integer type;
    /**
     * 显示顺序
     */
    @NotNull(message = "{SystemMenuDto.Sort.NotNull}")
    @Schema(description = "显示顺序")
    private Integer sort;
    /**
     * 父菜单ID
     */
    @NotNull(message = "{SystemMenuDto.ParentId.NotNull}")
    @Schema(description = "父菜单ID")
    private Long parentId;
    /**
     * 路由地址
     */
    @NotNull(message = "{SystemMenuDto.Path.NotEmpty}")
    @Schema(description = "路由地址")
    private String path;
    /**
     * 菜单图标
     */
    @Schema(description = "菜单图标")
    private String icon;
    /**
     * 菜单状态
     */
    @Schema(description = "菜单状态")
    private Integer status;
    /**
     * 是否可见
     */
    @Schema(description = "是否可见")
    private Boolean visible;
    /**
     * 是否缓存
     */
    @Schema(description = "是否缓存")
    private Boolean keepAlive;
    /**
     * 是否总是显示
     */
    @Schema(description = "是否总是显示")
    private Boolean alwaysShow;

}

